perm filename STFNUM.FAI[P11,LCS] blob
sn#568822 filedate 1981-02-26 generic text, type T, neo UTF8
TITLE STFNUM
ENTRY STFNUM
EXTERNAL SCN,SC,ALF,NALF,EXP3.2,SCX,SCM,RMOD,JCHAR,A2Z,MKX
ML←5 ↔ K←0 ↔ NNUM←14 ↔ ISKP←13 ↔ JJ←12 ↔ XMINUS←11 ↔ DECI←10
M←7 ↔ N←6 ↔ QQ←4 ↔ TRIP←3
DEFINE LTT<A2Z+=19> ↔ DEFINE LZ<A2Z+=25>
DEFINE LM <A2Z+=12> ↔ DEFINE LN<A2Z+=13> ↔ DEFINE LP <A2Z+=15>
DEFINE LL <A2Z+=11> ↔ DEFINE LR<A2Z+=17> ↔ DEFINE LBL <SCX+=11>
DEFINE LSL <MKX> ↔ DEFINE LST <SCX+=7 > ↔DEFINE LCM<SCX>
DEFINE LE <A2Z+4> ↔ DEFINE LC <A2Z+2> ↔ DEFINE LS <A2Z+=18>
DEFINE LPL<SCX+=6 > ↔DEFINE LMI<SCX+1> ↔ DEFINE LF <A2Z+5>
DEFINE LA <A2Z> ↔ DEFINE LI <A2Z+=8> ↔ DEFINE LW <A2Z+=22>
DEFINE JN <SC+=10> ↔ DEFINE DBST <SC+=11> ↔ DEFINE ISEMI <JCHAR+1>
DEFINE IXX <A2Z+=23> ↔ DEFINE MODE <SC+=70> ↔ DEFINE VX <SC+=16>
DEFINE LU <A2Z+=20> ↔ DEFINE LD <A2Z+3> ↔ DEFINE INP <ALF>
DEFINE REXP<SC+6> ↔DEFINE DOT<SCX+2> ↔ DEFINE VX4 <SC+=19>
STFNUM: 0 ;FUNCTION STFNUM(STAFF)
SETOM SCXNR# ;SCXNR=-1 FLAG
SETZ 6,
STFN1: MOVE 2,INP(6)
MOVE 4,INP+1(6)
CAME 2,LS ;IS INP1='S'?
JRST NONUM
CAME 4,LTT ; IF(INP(2).EQ.'T')STAFF=NEXT NUM
CAMN 4,LP ; IS IT A P?
SKIPA
JRST NONUM ;NO
MOVE 3,LZ ;PUT Z'S INTO FIRST LOCS.
MOVE ML,6 ;ML=3+PTR
ADDI ML,3
MOVSI XMINUS,201400
MOVE 2,INP+2(6) ;LOOK AT 3RD CHAR.
CAME 2,LMI ;IS IT MINUS?
JRST .+3
MOVNS XMINUS
AOJ ML, ;ML=ML+1
JSA 16,NALF ;GET THE STAFF NUM.
JUMP INP-1(ML)
FLTR
FMPR XMINUS
CAME 4,LP ;IF NOT 'P' GO TO STFN2
JRST STFN2
SETOM SCX+=30 ;RB=-1
MOVEM RMOD+1 ;SET4 IS NOW FILLED
JRST STFN3-1
STFN2: SETZM SCX+=30 ;RB=0
MOVEM @(16) ;TYPE STn/ TO SET STAFF NUM FOR ENTIRE LINE.
MOVE ML,6
STFN3: MOVE 2,INP(ML) ;LOOK FOR THE SLASH AND THROW ALL AWAY
MOVEM 3,INP(ML) ;SKIP UNTIL SEMI (CHANGED FROM SLASH AT S899)
AOJ ML,
CAME 2,LSL
JRST STFN3
SETZM SCXNR ;RETURN A ZERO
MOVE 6,ML
JRST STFN1 ;GO BACK AND LOOK FOR MORE.
NONUM: MOVE SCXNR ;NO STAFF NUM, RETURN A -1
JRA 16,1(16)
END